/*
 * HighBoost.h
 *
 *  Created on: Dec 6, 2009
 */

#ifndef HIGHBOOST_H_
#define HIGHBOOST_H_

#include "../api/IFilter.h"
#include "LowPass.h"
#include <cmath>

class HighBoost: public IFilter {
private:
	double value;
	LowPass lowPass;
protected:

	LowPass getLowPass() const;
	void setLowPass(LowPass lowPass);

	/*
	 * @postcondition	vectors values not changed
	 * @return new vector with filter applied
	 */
	virtual void applyFilterInVector(int width, int height, int **vectors, int **lowVectors, int **newVectors) const;
public:
	HighBoost(double value);
	HighBoost();
	virtual ~HighBoost();

	virtual ImageEntity *apply(ImageEntity *originalImageEntity);

	void setValue(double value);
	double getValue() const;
};

#endif /* HIGHBOOST_H_ */
